package net.zdsoft.wpchat.support.dao;

import java.util.List;
import java.util.Map;

import net.zdsoft.wpchat.support.entity.Operator;
import net.zdsoft.wpchat.support.enums.OperatorStateEnum;

/**
 * 后台用户dao
 *
 * @author xuan
 */
public interface OperatorDao {

	/**
	 * 根据用户名和密码查找用户
	 *
	 * @param userName
	 * @param pwd
	 * @return
	 */
    Operator findByUserNameAndPwd(String userName, String pwd);

    /**
     * 根据登录名称查找用户
     *
     * @param loginName
     * @return
     */
    Operator findByLoginName(String loginName);

    /**
     * 查找后台所有用户
     *
     * @return
     */
    List<Operator> findAll();

    /**
     * 根据id数组，查找该id的所有用户
     *
     * @param ids
     * @return
     */
    List<Operator> findByIds(String... ids);

    /**
     * 根据用户id，批量删除
     *
     * @param ids
     */
    void deleteOperator(String... ids);

    /**
     * 插入用户
     *
     * @param operator
     */
    void insertOperator(Operator operator);

    /**
     * 修改用户
     *
     * @param operator
     */
    void modifyOperator(Operator operator);

    /**
     * 根据用户的id，修改用户的state状态
     *
     * @param operatorId
     * @param state
     */
    void updateOperatorState(String operatorId, OperatorStateEnum state);

    /**
     * 根据用户的id，修改用户的密码
     *
     * @param operatorId
     * @param password
     */
    void updateOperatorPassword(String operatorId, String password);

    /**
     * 根据用户id，查找用户
     *
     * @param id
     * @return
     */
    Operator findOperatorById(String id);

    /**
     * 根据用户的id列表，查找用户id对应用户name的map
     *
     * @param opratorIdlist
     * @return
     */
    Map<String, String> findOperatorsMap(List<String> opratorIdlist);

}
